Control Abstraction in Parallel Programming
نویسندگان
چکیده
Control abstraction is the process by which programmers deene new control constructs, specifying a statement ordering separately from an implementation of that ordering. We argue that control abstraction can and should play a central role in parallel programming. Control abstraction can be used to build new control constructs for the expression of parallelism. A control construct can have several implementations, representing the varying degrees of parallelism to be exploited on different architectures. Control abstraction also reduces the need for explicit synchronization, since it admits a precise speciication of control ow. Using several examples , we illustrate these beneets of control abstraction. We also show that we can eeciently implement a parallel programming language based on control abstraction. We conclude that the enormous beneets and reasonable costs of control abstraction argue for its inclusion in explicitly parallel programming languages. Sequential programming languages use sequencing, repetition, and selection to deene a total ordering of statement executions in a program. Parallel programming languages use additional control ow constructs, such as fork, cobegin, or parallel for loops, to introduce a partial order on statement executions, which admits a parallel implementation. Since parallelism is primarily an issue of control ow, the control constructs provided by the language can either help or hinder attempts to express and exploit parallelism. Control constructs typically deene an ordering on statement execution without regard to a speciic implementation of that ordering. The speciication of a control construct at language-deenition time is an example of control abstraction. More generally, control abstraction is the process by which programmers specify a statement ordering (parameterized with respect to the statements being ordered) separately from an implementation of that ordering. A control construct is the result of that process. Control abstraction has been used in sequential programming languages such as CLU 11] to deene control constructs that iterate over the elements of an abstract data type. Few parallel programming languages support control abstraction however, since the beneets of using control abstraction for parallel programming are not generally recognized. These beneets include: New control constructs: With control abstraction , programmers can build new constructs for parallel programming without changing the language deenition or implementation. Alternative implementations: Control constructs can have several diierent implementations, each exploiting a diierent degree of parallelism. Programmers may choose among these implementations to tune the application to a given architecture. Precise speciication of parallelism: Programmers can build application-speciic control constructs that admit …
منابع مشابه
Parallel Programming with Control
Parallel programming involves nding the potential parallelism in an application and mapping it to the architecture at hand. Since a typical application has more potential parallelism than any single architecture can exploit eeectively, programmers usually limit their focus to the parallelism that the available control constructs express easily and that the given architecture exploits ee-ciently...
متن کاملAbstraction, desalination and recharge method to control seawater intrusion into unconfined coastal aquifers
In this study, abstraction, desalination and recharge method and SEAWAT numerical model are used to investigate seawater intrusion repulsion in a hypothetical two-dimensional coastal aquifer to understand the relation of seawater intrusion with abstraction, desalination and recharge parameters (i.e. abstraction/recharge rate, wells distance and depth). Abstraction, desalination and recharge con...
متن کاملThe PCG: An Empirical Study
Process communication graph (PCG) is the visual formalism used in a graph-based visual language (VL) for parallel programming. It combines control flow and data flow graphs into a single visual formalism, and supports different levels of abstraction at which parallel programs are expressed and moves to compositional programming. Empirical studies allow designers to put their designs to test in ...
متن کاملDeenitional Trees
Rewriting is a computational paradigm that speciies the actions, but not the control. We introduce a hierarchical structure representing, at a high level of abstraction, a form of control. Its application solves a speciic problem arising in the design and implementation of inherently sequential, lazy, functional programming languages based on rewriting. For example, we show how to extend the ex...
متن کاملThe Parallel Asynchronous Recursion Model
This extended abstract introduces and evaluates a new model of parallel computation, called the Parallel Asynchronous Recursion (PAR) model. This model offers distinct advantages to the program designer and the parallel machine architect, while avoiding some of the PRAM’s shortcomings. The PAR model can be thought of as a procedural programming language augmented with a process control structur...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1992